go/types.operand.mode (field)

318 uses

	go/types (current package)
		api_predicates.go#L34: 	x := operand{mode: value, typ: V}
		api_predicates.go#L45: 	x := operand{mode: value, typ: V}
		assignments.go#L27: 	switch x.mode {
		assignments.go#L39: 		x.mode = invalid
		assignments.go#L54: 					x.mode = invalid
		assignments.go#L64: 					x.mode = invalid
		assignments.go#L82: 			x.mode = invalid
		assignments.go#L99: 		x.mode = invalid
		assignments.go#L117: 		x.mode = invalid
		assignments.go#L122: 	if x.mode == invalid || !isValid(x.typ) || !isValid(lhs.typ) {
		assignments.go#L130: 	if x.mode != constant_ {
		assignments.go#L145: 	if x.mode == invalid {
		assignments.go#L157: 	if x.mode == invalid || !isValid(x.typ) || !isValid(lhs.typ) {
		assignments.go#L161: 		x.mode = invalid
		assignments.go#L173: 				x.mode = invalid
		assignments.go#L222: 	if x.mode == invalid || !isValid(x.typ) {
		assignments.go#L228: 	switch x.mode {
		assignments.go#L237: 			if op.mode == mapindex {
		assignments.go#L256: 			x.mode = invalid
		assignments.go#L447: 		if commaOk && rhs[0].mode != invalid && rhs[1].mode != invalid {
		assignments.go#L455: 	if rhs[0].mode != invalid {
		assignments.go#L511: 		if commaOk && rhs[0].mode != invalid && rhs[1].mode != invalid {
		assignments.go#L519: 	if rhs[0].mode != invalid {
		builtins.go#L59: 			if a.mode == invalid {
		builtins.go#L128: 					x.mode = value
		builtins.go#L141: 		x.mode = value
		builtins.go#L155: 				if x.mode == constant_ {
		builtins.go#L226: 		x.mode = mode
		builtins.go#L245: 		x.mode = novalue
		builtins.go#L266: 		x.mode = novalue
		builtins.go#L301: 			if x.mode == constant_ && y.mode == constant_ {
		builtins.go#L316: 		if x.mode == invalid || y.mode == invalid {
		builtins.go#L349: 		if x.mode == constant_ && y.mode == constant_ {
		builtins.go#L352: 			x.mode = value
		builtins.go#L355: 		if check.recordTypes() && x.mode != constant_ {
		builtins.go#L385: 		x.mode = value
		builtins.go#L412: 		if x.mode == invalid {
		builtins.go#L416: 		x.mode = novalue
		builtins.go#L427: 			if x.mode == constant_ {
		builtins.go#L440: 				if x.mode == invalid {
		builtins.go#L473: 		if x.mode == constant_ {
		builtins.go#L480: 			x.mode = value
		builtins.go#L483: 		if check.recordTypes() && x.mode != constant_ {
		builtins.go#L530: 		x.mode = value
		builtins.go#L547: 			if a.mode == invalid {
		builtins.go#L559: 				if x.mode == invalid {
		builtins.go#L568: 				if x.mode == constant_ && a.mode == constant_ {
		builtins.go#L573: 					x.mode = value
		builtins.go#L579: 		if x.mode != constant_ {
		builtins.go#L580: 			x.mode = value
		builtins.go#L583: 			if x.mode == invalid {
		builtins.go#L593: 		if check.recordTypes() && x.mode != constant_ {
		builtins.go#L609: 		x.mode = value
		builtins.go#L631: 		if x.mode == invalid {
		builtins.go#L635: 		x.mode = novalue
		builtins.go#L648: 				if a.mode == invalid {
		builtins.go#L655: 		x.mode = novalue
		builtins.go#L662: 		x.mode = value
		builtins.go#L673: 		if x.mode == invalid {
		builtins.go#L682: 		x.mode = value
		builtins.go#L691: 		if x.mode == invalid {
		builtins.go#L696: 			x.mode = value
		builtins.go#L701: 			x.mode = constant_
		builtins.go#L719: 		if x.mode == invalid {
		builtins.go#L749: 			if x.mode == variable || indirect {
		builtins.go#L760: 			x.mode = value
		builtins.go#L770: 			x.mode = constant_
		builtins.go#L779: 		if x.mode == invalid {
		builtins.go#L784: 			x.mode = value
		builtins.go#L794: 			x.mode = constant_
		builtins.go#L815: 		x.mode = value
		builtins.go#L831: 		x.mode = value
		builtins.go#L842: 		if x.mode == invalid {
		builtins.go#L851: 		x.mode = value
		builtins.go#L862: 		if x.mode == invalid {
		builtins.go#L866: 		x.mode = value
		builtins.go#L876: 		if x.mode != constant_ || !isBoolean(x.typ) {
		builtins.go#L898: 			x.mode = novalue
		builtins.go#L908: 		if x.mode == invalid {
		builtins.go#L917: 	assert(x.mode != invalid)
		call.go#L54: 			x.mode = invalid
		call.go#L68: 		x.mode = invalid
		call.go#L105: 			args = []*operand{{mode: value, expr: expr, typ: T.sig}}
		call.go#L119: 			x.mode = invalid
		call.go#L129: 	x.mode = value
		call.go#L180: 			assert(x.mode == value)
		call.go#L191: 	switch x.mode {
		call.go#L200: 		if x.mode == invalid {
		call.go#L204: 		x.mode = invalid
		call.go#L210: 			if x.mode != invalid {
		call.go#L234: 			x.mode = invalid
		call.go#L238: 		if x.mode != invalid && x.mode != constant_ {
		call.go#L246: 	cgocall := x.mode == cgofunc
		call.go#L252: 		x.mode = invalid
		call.go#L268: 			x.mode = invalid
		call.go#L279: 			x.mode = invalid
		call.go#L311: 		x.mode = novalue
		call.go#L314: 			x.mode = commaerr
		call.go#L316: 			x.mode = value
		call.go#L320: 		x.mode = value
		call.go#L328: 	if x.mode == value && sig.TypeParams().Len() > 0 && isParameterized(sig.TypeParams().list(), x.typ) {
		call.go#L329: 		x.mode = invalid
		call.go#L407: 			if t, ok := x.typ.(*Tuple); ok && x.mode != invalid {
		call.go#L411: 					resList[i] = &operand{mode: value, expr: e, typ: v.typ}
		call.go#L741: 				x.mode = constant_
		call.go#L745: 				x.mode = typexpr
		call.go#L748: 				x.mode = variable
		call.go#L754: 				x.mode = funcMode
		call.go#L757: 					x.mode = value
		call.go#L761: 				x.mode = builtin
		call.go#L774: 	switch x.mode {
		call.go#L808: 	obj, index, indirect = lookupFieldOrMethod(x.typ, x.mode == variable, check.pkg, sel, false)
		call.go#L822: 			if x.mode == typexpr {
		call.go#L834: 			alt, _, _ := lookupFieldOrMethod(x.typ, x.mode == variable, check.pkg, sel, true)
		call.go#L846: 	if x.mode == typexpr {
		call.go#L883: 		x.mode = value
		call.go#L898: 			if x.mode == variable || indirect {
		call.go#L899: 				x.mode = variable
		call.go#L901: 				x.mode = value
		call.go#L924: 				if x.mode == variable {
		call.go#L955: 			x.mode = value
		call.go#L974: 	x.mode = invalid
		call.go#L1002: 	x.mode = value // anything but invalid
		call.go#L1034: 	return x.mode != invalid
		const.go#L23: 	assert(x.mode == constant_)
		const.go#L243: 		x.mode = invalid
		const.go#L255: 	assert(x.mode == constant_)
		const.go#L297: 		x.mode = invalid
		conversions.go#L21: 	constArg := x.mode == constant_
		conversions.go#L53: 			x.mode = invalid
		conversions.go#L82: 		x.mode = value // type parameters are not constants
		conversions.go#L86: 		x.mode = value
		conversions.go#L95: 		x.mode = invalid
		conversions.go#L116: 		} else if x.mode == constant_ && isInteger(x.typ) && allString(T) {
		expr.go#L131: 	if x.mode == invalid {
		expr.go#L140: 		if _, ok := ast.Unparen(e.X).(*ast.CompositeLit); !ok && x.mode != variable {
		expr.go#L142: 			x.mode = invalid
		expr.go#L145: 		x.mode = value
		expr.go#L153: 			x.mode = invalid
		expr.go#L159: 			x.mode = invalid
		expr.go#L164: 			x.mode = invalid
		expr.go#L168: 		x.mode = commaok
		expr.go#L177: 			x.mode = invalid
		expr.go#L185: 		x.mode = invalid
		expr.go#L189: 	if x.mode == constant_ {
		expr.go#L204: 	x.mode = value
		expr.go#L334: 		if c.mode == invalid {
		expr.go#L358: 	if x.mode == invalid || isTyped(x.typ) || !isValid(target) {
		expr.go#L373: 		if x.mode == constant_ {
		expr.go#L455: 		x.mode = invalid
		expr.go#L530: 	if x.mode == constant_ && y.mode == constant_ {
		expr.go#L535: 		x.mode = value
		expr.go#L572: 	x.mode = invalid
		expr.go#L595: 	if x.mode == constant_ {
		expr.go#L605: 		x.mode = invalid
		expr.go#L615: 	if y.mode == constant_ {
		expr.go#L620: 			x.mode = invalid
		expr.go#L628: 			if y.mode == invalid {
		expr.go#L629: 				x.mode = invalid
		expr.go#L638: 				x.mode = invalid
		expr.go#L645: 			if y.mode == invalid {
		expr.go#L646: 				x.mode = invalid
		expr.go#L651: 			x.mode = invalid
		expr.go#L656: 	if x.mode == constant_ {
		expr.go#L657: 		if y.mode == constant_ {
		expr.go#L672: 				x.mode = invalid
		expr.go#L715: 			x.mode = value
		expr.go#L723: 		x.mode = invalid
		expr.go#L727: 	x.mode = value
		expr.go#L759: 	if x.mode == invalid {
		expr.go#L762: 	if y.mode == invalid {
		expr.go#L763: 		x.mode = invalid
		expr.go#L774: 	if x.mode == invalid {
		expr.go#L797: 		x.mode = invalid
		expr.go#L802: 		x.mode = invalid
		expr.go#L808: 		if (x.mode == constant_ || allInteger(x.typ)) && y.mode == constant_ && constant.Sign(y.val) == 0 {
		expr.go#L810: 			x.mode = invalid
		expr.go#L815: 		if x.mode == constant_ && y.mode == constant_ && isComplex(x.typ) {
		expr.go#L820: 				x.mode = invalid
		expr.go#L826: 	if x.mode == constant_ && y.mode == constant_ {
		expr.go#L843: 	x.mode = value
		expr.go#L896: 		if x.mode == invalid {
		expr.go#L900: 		if y.mode == invalid {
		expr.go#L901: 			x.mode = invalid
		expr.go#L967: 	if x.mode == invalid || x.mode == novalue {
		expr.go#L987: 		x.mode = invalid
		expr.go#L998: 	x.mode = invalid
		expr.go#L1016: 		if x.mode == invalid {
		expr.go#L1022: 		if x.mode == invalid {
		expr.go#L1028: 		if x.mode == invalid {
		expr.go#L1049: 		if x.mode == invalid {
		expr.go#L1055: 		if x.mode == invalid {
		expr.go#L1061: 		if x.mode == invalid {
		expr.go#L1084: 		x.mode = commaok
		expr.go#L1092: 		switch x.mode {
		expr.go#L1115: 			x.mode = variable
		expr.go#L1121: 		if x.mode == invalid {
		expr.go#L1131: 		if x.mode == invalid {
		expr.go#L1142: 		x.mode = typexpr
		expr.go#L1159: 	x.mode = invalid
		expr.go#L1249: 	if t, ok := x.typ.(*Tuple); ok && x.mode != invalid {
		expr.go#L1253: 			list[i] = &operand{mode: value, expr: e, typ: v.typ}
		expr.go#L1260: 	if allowCommaOk && (x.mode == mapindex || x.mode == commaok || x.mode == commaerr) {
		expr.go#L1261: 		x2 := &operand{mode: value, expr: e, typ: Typ[UntypedBool]}
		expr.go#L1262: 		if x.mode == commaerr {
		expr.go#L1295: 	if modeset&(1<<x.mode) != 0 {
		expr.go#L1298: 		switch x.mode {
		expr.go#L1316: 		x.mode = invalid
		expr.go#L1322: 	if x.mode == value {
		expr.go#L1327: 			x.mode = invalid
		index.go#L23: 	switch x.mode {
		index.go#L30: 		x.mode = invalid
		index.go#L34: 			x.mode = typexpr
		index.go#L47: 	if x.mode == invalid {
		index.go#L58: 			if x.mode == constant_ {
		index.go#L64: 			x.mode = value
		index.go#L71: 		if x.mode != variable {
		index.go#L72: 			x.mode = value
		index.go#L80: 			x.mode = variable
		index.go#L86: 		x.mode = variable
		index.go#L92: 			x.mode = invalid
		index.go#L99: 		x.mode = mapindex
		index.go#L124: 				if x.mode != variable {
		index.go#L166: 					x.mode = invalid
		index.go#L173: 				x.mode = mapindex
		index.go#L181: 			x.mode = mode
		index.go#L190: 		x.mode = invalid
		index.go#L196: 		x.mode = invalid
		index.go#L213: 	if x.mode == invalid {
		index.go#L223: 		x.mode = invalid
		index.go#L234: 				x.mode = invalid
		index.go#L238: 			if x.mode == constant_ {
		index.go#L251: 		if x.mode != variable {
		index.go#L253: 			x.mode = invalid
		index.go#L272: 		x.mode = invalid
		index.go#L276: 	x.mode = value
		index.go#L281: 		x.mode = invalid
		index.go#L359: 	if x.mode != constant_ {
		index.go#L379: 	if x.mode == invalid {
		index.go#L385: 	if x.mode == invalid {
		index.go#L395: 	if x.mode == constant_ {
		infer.go#L68: 		if arg.mode == invalid {
		infer.go#L168: 		if arg.mode == invalid {
		literals.go#L64: 			x.mode = invalid
		literals.go#L69: 	if x.mode == invalid {
		literals.go#L75: 		x.mode = invalid
		literals.go#L103: 		x.mode = value
		literals.go#L107: 		x.mode = invalid
		literals.go#L155: 			x.mode = invalid
		literals.go#L236: 			x.mode = invalid
		literals.go#L264: 			x.mode = invalid
		literals.go#L274: 			x.mode = invalid
		literals.go#L290: 			if x.mode == invalid {
		literals.go#L293: 			if x.mode == constant_ {
		literals.go#L340: 			x.mode = invalid
		literals.go#L345: 	x.mode = value
		operand.go#L60: 	mode operandMode
		operand.go#L116: 		if x.mode == nilvalue {
		operand.go#L127: 		if x.mode == value && x.typ == Typ[UntypedNil] {
		operand.go#L138: 		switch x.mode {
		operand.go#L156: 	switch x.mode {
		operand.go#L172: 	buf.WriteString(operandModeString[x.mode])
		operand.go#L175: 	if x.mode == constant_ {
		operand.go#L288: 		x.mode = invalid
		operand.go#L292: 	x.mode = constant_
		operand.go#L300: 		return x.mode == nilvalue
		operand.go#L302: 		return x.mode == value && x.typ == Typ[UntypedNil]
		operand.go#L313: 	if x.mode == invalid || !isValid(T) {
		recording.go#L23: 	switch x.mode {
		recording.go#L39: 		check.rememberUntyped(x.expr, false, x.mode, typ.(*Basic), val)
		recording.go#L41: 		check.recordTypeAndValue(x.expr, x.mode, typ, val)
		recording.go#L100: 	if a[0].mode == invalid {
		stmt.go#L240: 		if x.mode == invalid || v.mode == invalid {
		stmt.go#L244: 		if v.mode == invalid {
		stmt.go#L250: 		if res.mode == invalid {
		stmt.go#L253: 		if v.mode != constant_ {
		stmt.go#L446: 		switch x.mode {
		stmt.go#L466: 		if ch.mode == invalid || val.mode == invalid {
		stmt.go#L499: 		if x.mode == invalid {
		stmt.go#L509: 		if x.mode == invalid {
		stmt.go#L541: 			if x.mode == invalid {
		stmt.go#L622: 		if x.mode != invalid && !allBoolean(x.typ) {
		stmt.go#L649: 			if x.mode != invalid && !Comparable(x.typ) && !hasNil(x.typ) {
		stmt.go#L651: 				x.mode = invalid
		stmt.go#L656: 			x.mode = constant_
		stmt.go#L741: 			if x.mode != invalid {
		stmt.go#L850: 			if x.mode != invalid && !allBoolean(x.typ) {
		stmt.go#L894: 	if x.mode != invalid {
		stmt.go#L967: 				y.mode = value
		stmt.go#L1003: 				if x.mode != invalid && !isInteger(x.typ) {
		stmt.go#L1008: 				y.mode = value
		typexpr.go#L22: 	x.mode = invalid
		typexpr.go#L108: 		x.mode = constant_
		typexpr.go#L115: 		x.mode = typexpr
		typexpr.go#L128: 		x.mode = variable
		typexpr.go#L132: 		x.mode = value
		typexpr.go#L136: 		x.mode = builtin
		typexpr.go#L139: 		x.mode = value
		typexpr.go#L260: 		switch x.mode {
		typexpr.go#L277: 		switch x.mode {
		typexpr.go#L527: 	if x.mode != constant_ {
		typexpr.go#L528: 		if x.mode != invalid {